home *** CD-ROM | disk | FTP | other *** search
- /* $VER: WebUpdate.dopus5 1.15 (17 AUG 97)
- ** by Charles Patterson <midian@azstarnet.com>
- ** http://www.azstarnet.com/~midian/
- **
- ** Description: Connects to FTP site, compares web page file dates then
- ** uploads updated files.
- **
- ** Requirements: DirectoryOpus v5.5 (© 1996 by Jonathan Potter)
- ** Online with a TCP stack (no kidding :)
- ** rexxreqtools.library 1.3 (© 1992-94 Rafael D'Halleweyn)
- **
- ** Instructions: Copy script to DOPUS5:Arexx then run
- ** webupdate.dopus5 anyway you want to. :)
- */
- OPTIONS RESULTS
-
- PARSE ARG prefs
-
- IF ~OPEN('env','ENV:WebUpdate.prefs',R) | prefs = '?' THEN DO
- IF OPEN('env','ENV:WebUpdate.prefs',R) THEN DO
- DO z = 1 to 5
- defstring.z = READLN('env')
- END
- CLOSE('env')
- END
- ELSE DO
- defstring.1='ftp.somewhere.com'
- defstring.2='username'
- defstring.4='/users/home/username/'
- defstring.5='DH2:Homepage'
- END
- env.1 = RTGETSTRING(defstring.1,'Enter your internet host')
- IF ~rtresult THEN EXIT
- env.2 = RTGETSTRING(defstring.2,'Enter your user name')
- IF ~rtresult THEN EXIT
- env.3 = RTGETSTRING(,'Enter your password',,,"rtgs_invisible=TRUE")
- IF ~rtresult THEN EXIT
- env.4 = RTGETSTRING(defstring.4,'Enter the remote path')
- IF ~rtresult THEN EXIT
- env.5 = RTGETSTRING(defstring.5,'Enter the local path')
- IF ~rtresult THEN EXIT
- OPEN('env','ENVARC:WebUpdate.prefs',W)
- DO n = 1 to 5
- WRITELN('env',env.n)
- END
- CLOSE('env')
- ADDRESS COMMAND 'COPY ENVARC:WebUpdate.prefs ENV:WebUpdate.prefs'
- EXIT
- END
-
- OPEN('env','ENV:WebUpdate.prefs',R)
- DO n = 1 to 5
- env.n = READLN('env')
- END
- CLOSE('env')
-
- LISTER.1.0=env.4
- LISTER.0.0=env.5
-
- IF ~SHOW('P',DOPUS.1) THEN ADDRESS COMMAND RUN DOPUS5:DirectoryOpus
-
- ADDRESS DOPUS.1
- DOPUS FRONT
-
- DOPUS VERSION
- IF ( result='RESULT' | TRANSLATE(result,'.',' ') < 5.1218 ) THEN DO
- DOPUS REQUEST '"This script requires DOpus v5.5 or greater." OK'
- EXIT
- END
-
- DOPUS SCREEN
- screen=RESULT
- PARSE VAR screen sinfo.0 screen
- PARSE VAR screen sinfo.1 screen
- IF sinfo.1 > 600 THEN DO
- LISTER NEW "0/11/262/351" LISTER.0.0
- END
- ELSE DO
- LISTER NEW "0/11/150/200" LISTER.0.0
- END
- LISTER.0.1=RESULT
-
- /* Connect here */
- COMMAND WAIT FTPCONNECT env.1 env.2 env.3 DIR LISTER.1.0
- LISTER REQUEST LISTER.0.1 '"When Remote directory '||'0a'x||'is listed click" OK'
-
- LISTER QUERY ALL
- lists=RESULT
- k=0
- DO WHILE lists ~= ''
- PARSE VAR lists list.k lists
- END
- LISTER.1.1=list.k
-
- DO n = 0 TO 1
- LISTER SET LISTER.n.1 TITLE 'Listing Files'
- LISTER REFRESH LISTER.n.1 FULL
- LISTER SET LISTER.n.1 BUSY 1 WAIT
- LISTER QUERY LISTER.n.1 FILES stem file.n
- LISTER QUERY LISTER.n.1 NUMFILES
- NFiles.n = RESULT
- DO f = 0 TO NFiles.n
- LISTER QUERY LISTER.n.1 ENTRY file.n.f stem fileinfo.n.f
- END
- END
-
- DO n = 0 to 1
- LISTER SET LISTER.n.1 BUSY 0
- LISTER SET LISTER.n.1 TITLE 'Comparing...'
- LISTER REFRESH LISTER.n.1 FULL
- LISTER SET LISTER.n.1 BUSY 1 WAIT
- END
-
- filetrans=''
- DO c = 0 TO (NFiles.0 - 1)
- DO z = 0 TO (NFiles.1 - 1)
- IF file.0.c = file.1.z THEN DO
- IF fileinfo.0.c.date > fileinfo.1.z.date THEN
- filetrans=filetrans file.0.c
- ITERATE c
- END
- END
- filetrans=filetrans file.0.c
- END
-
- /* Upload files */
- LISTER SET LISTER.0.1 TITLE 'Uploading...'
- LISTER SET LISTER.1.1 TITLE 'Receiving...'
- DO n = 0 to 1
- LISTER SET LISTER.n.1 BUSY 0
- LISTER REFRESH LISTER.n.1 FULL
- END
- DO WHILE filetrans ~= ''
- PARSE VAR filetrans fileup filetrans
- LISTER SELECT LISTER.0.1 fileup
- END
-
- COMMAND WAIT SOURCE LISTER.0.1 DEST LISTER.1.1 COPY
-
- LISTER REQUEST LISTER.1.1 '"Click OK when upload is finished." OK'
- LISTER CLOSE LISTER.0.1
- COMMAND FTPQUIT
- EXIT
-
-